/**
 * <li>文件名：PurviewTag.java
 * <li>说明：是PurviewButtonTag和PurviewImgTag的父类
 * <li>创建人： 曾明辉
 * <li>创建日期：2008-11-3
 * <li>修改人： 
 * <li>修改日期：
 */
package com.gp.base.tag.purview;

import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import com.gp.base.filter.LoginPurviewCheckFilter;

/**
 * <li>类型名称：
 * <li>说明：
 * <li>创建人： 曾明辉
 * <li>创建日期：2008-11-3
 * <li>修改人：
 * <li>修改日期：
 */
@SuppressWarnings("serial")
public class PurviewTag extends TagSupport {
	
	public static String PURVIEW_ACTION_NAME = "PURVIEW_ACTION";
	
	protected boolean disallow = false;//禁止权限
	
	protected String keyWord; //模块功能权限中关键字
	private String id;      //按钮或图片的id
	private String name;    //按钮或图片的name
	private String classes; //按钮或图片的classes
	private String style;   //按钮或图片的style
	private String onClick; //按钮或图片的单击事件
	
	public void setClasses(String classes) {
		this.classes = classes;
	}


	public void setId(String id) {
		this.id = id;
	}


	@SuppressWarnings("unchecked")
	public void setKeyWord(String keyWord) {
		this.keyWord = keyWord;		
				
		Object map = pageContext.getSession().getAttribute(LoginPurviewCheckFilter.USER_SESSION_DISMODULEFUN);
		if(map == null){//未设置
			return;
		}
		Map<String,String> disModuleFunMap = (Map<String,String>)(map);
				
		
		if(disModuleFunMap.containsKey(this.keyWord)){//不能访问
			this.disallow = true;
		}
		else{
			this.disallow = false;
		}
	}


	public void setName(String name) {
		this.name = name;
	}


	public void setOnClick(String onClick) {
		this.onClick = onClick;
	}


	public void setStyle(String style) {
		this.style = style;
	}
	
	/**
	 * 
	 * <li>方法名：getAttributes
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：获取属性HTML
	 * <li>创建人：曾明辉
	 * <li>创建日期：2008-11-3
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	protected String getAttributes(){
		StringBuffer sb = new StringBuffer();
		if(id != null){
			sb.append(" id=\"" + id + "\"");
		}
		if(name != null){
			sb.append(" name=\"" + name + "\"");
		}
		if(classes != null){
			sb.append(" class=\"" + classes + "\"");
		}
		if(style != null){
			sb.append(" style=\"" + style + "\"");
		}
		if(onClick != null){
			sb.append(" onClick=\"" + onClick + "\"");
		}
		
		return sb.toString();
	}
	
	@Override
	public int doStartTag() throws JspException {
		
		if(this.disallow == true){//禁止
			return SKIP_BODY;
		}
		else{
			return EVAL_BODY_INCLUDE;
		}		
	}
}
